A three-dimensional model is a computer simulation of a physical object. The computer system rotates the model so that it can be viewed from different angles by a user of the computer system. Rotation is typically accomplished by sequential rotations about three mutually perpendicular axes. Types of rotations include: tilt, which is rotation about the z-axis; rotation, which is rotation about the y-axis; and elevation, which is rotation about the x-axis.
On a computer system display device, the axes are commonly setup in such a way that the x-axis is horizontal, extending from the left of the display device to the right; the y-axis is vertical, extending from the bottom of the display device to the top, and the z-axis is horizontal, extending from the rear of the display device to the front. This axis orientation is known as a right-handed coordinate system.
Various techniques have been developed for rotating three-dimensional models using two-dimensional pointer positioning devices such as a mouse. Some of these techniques attempt to provide kinesthetic correspondence between the movement of the pointer positioning device and the direction of the model's movement. That is, the movement of the pointer positioning device is supposed to provide the user with the sense of actually rotating the displayed model. Kinesthetic correspondence between the pointer positioning device and the model's movement is a highly desired feature.
Rotation routines are typically used in computer-aided design (CAD) systems, to view a three-dimensional model from many different angles. These routines allow three full degrees of rotational freedom. Simple rotation routines involve entering values used for rotation, elevation, and tilt directly. More advanced routines attempt to model the behavior of a mathematical sphere centered around the model, the sphere being spun around its center by a user dragging the surface of the sphere with a pointer positioning device.
A common problem of the rotation routines used in CAD systems is that it is difficult for a user to return the model to the starting position after beginning to rotate the model. This concept is known as reversibility and it is also a highly desired feature. Another common problem is that small movements of the pointer positioning device by the user can cause abrupt changes in the display of the model.
Rotating a three-dimensional model displayed in perspective view is more challenging than rotating a three-dimensional model displayed in isometric view. Perspective view is a display method that shows models in three dimensions with the depth aspect rendered according to the desired perspective. A computer system that displays a cube in perspective view, for example, shows the sides in relation to one another but shows the height as growing smaller with distance. An advantage of perspective view is that it presents a more accurate representation of what the human eye perceives.
Isometric view, on the other hand, is a display method that shows three-dimensional models with height and width, but without the change in perspective that would be added by depth. A computer system that displays a cube in isometric view, for example, shows the sides in relation to one another, each side evenly proportioned with height and width, but no depth; the sides thus do not appear to grow smaller with distance as they do when the cube is drawn in perspective.